package com.kly.springbootinit.model.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 车辆状态枚举
 */
@Getter
@AllArgsConstructor
public enum VehicleStatus {
    /**
     * 可租
     */
    AVAILBLE(0),
    /**
     * 已租
     */
    RENTED(1),
    /**
     * 维护中
     */
    MAINTENANCE(2),

    /**
     * 已被预约
     */
    RESERVED(3);

    private final Integer status;

    /**
     * 根据 status 值获取对应的枚举
     *
     * @param status 状态值
     * @return 对应的枚举
     * @throws IllegalArgumentException 如果 status 无效
     */
    public static VehicleStatus of(Integer status) {
        return java.util.Arrays.stream(values())
                .filter(e -> e.status.equals(status))
                .findFirst()
                .orElseThrow(() -> new IllegalArgumentException("无效的车辆状态: " + status));
    }
}